Geohash-related location predictions

ABSTRACT

Embodiments provide techniques, including systems and methods, for determining an estimated target pickup location for a corresponding transport request at a particular location, such as associated with a particular geohash. A requestor may send a request that is associated with a location that does not reflect the requestor&#39;s intent regarding where they would like to be met by the provider (i.e., “picked up”). GPS inaccuracies may cause the request location to inaccurately indicate where the requestor will be; for example, the request location may be inside a building while the requestor is waiting on a curb around a far side of the building. The target pickup location allows for a requestor and a provider to meet more efficiently, reducing delay for the provider and improving the efficiency of the system by preventing provider system resources from being taken from other service areas and decreasing provider downtime upon matching.

CROSS-REFERENCES TO RELATED APPLICATIONS

This present application is a continuation of U.S. application Ser. No.15/666,446, filed Aug. 1, 2017, which is a continuation of U.S.application Ser. No. 15/479,118, filed Apr. 4, 2017, now issued as U.S.Pat. No. 9,769,616. Each of the aforementioned patents and applicationsare hereby incorporated by reference in their entirety.

BACKGROUND

Traditionally, people have requested and received services at fixedlocations from specific service providers. For example, various serviceswere fulfilled by making a delivery to a user at a home or worklocation. Many services can now be accessed through mobile computingdevices and fulfilled at arbitrary locations, often by service providersthat are activated on demand. Such on-demand service offerings areconvenient for users, who do not have to be at fixed locations toreceive the services. However, locations provided by requestingcomputing devices can be inaccurate and not represent a location where arequestor and a provider should meet to fulfill the on-demand service.Inaccurate and/or inefficient identification of locations related toon-demand service requests can lead to inefficient resource allocation.For example, a requestor and provider may not be able to find each otherif the location at which they are to meet is inaccurate, and delay insearching for each other can lead to longer travel times and reducedsupply of providers. In some cases, the requestor and provider may notbe able to locate each other, which can lead to a service request beingcancelled and re-placed in the system with a new provider, despite anavailable provider being in the area This leads to inefficient resourceallocation as cancelled and duplicated requests increase bandwidth andprocessing needs, as well as disrupting efficient allocation ofresources in a geographic area.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, in which:

FIG. 1 illustrates an example of a dynamic transportation matchingsystem including a matched provider and requestor, in accordance with anembodiment of the present techniques;

FIG. 2 illustrates an example approach for identifying prior transportdata in a geographic location to be utilized by a dynamic transportationmatching system, in accordance with an embodiment of the presenttechniques;

FIG. 3 illustrates an example approach for identifying sets of priortransport data in a geographic location to be utilized by a dynamictransportation matching system, in accordance with an embodiment of thepresent techniques;

FIGS. 4A-4B illustrate example approaches for identifying priortransport data in a geographic location to be utilized by a dynamictransportation matching system, in accordance with an embodiment of thepresent techniques;

FIG. 5 illustrates an exemplary flow diagram of a method for using priortransport data as part of an approach for predicting locations, inaccordance with an embodiment of the present techniques;

FIG. 6 illustrates an exemplary flow diagram of a method for usinggeohash-related prior transport data as part of an approach forpredicting locations, in accordance with an embodiment of the presenttechniques;

FIG. 7 illustrates an example block diagram of a dynamic transportationmatching system, in accordance with embodiments of the presenttechniques;

FIG. 8 illustrates an example requestor/provider management environment,in accordance with various embodiments;

FIG. 9 illustrates an example data collection and application managementsystem, in accordance with various embodiments;

FIGS. 10A-10C illustrates an example provider communication device inaccordance with various embodiments; and

FIG. 11 illustrates an example computer system, in accordance withvarious embodiments.

DETAILED DESCRIPTION

In the following description, various embodiments will be described. Forpurposes of explanation, specific configurations and details are setforth in order to provide a thorough understanding of the embodiments.However, it will also be apparent to one skilled in the art that theembodiments may be practiced without the specific details. Furthermore,well-known features may be omitted or simplified in order not to obscurethe embodiment being described.

On-demand services, such as a transportation matching service thatmatches riders and drivers, such as those accessed through mobiledevices, are becoming more prevalent. However, due to the distributedand portable nature of providers and requestors being matched by anon-demand matching system, matching providers and requestors efficientlybased on location data provided by electronic devices in sometimeschallenging environments can be difficult. For example, a requestor maybe in a large building that borders several streets with multiple doorsto the outside, and the requestor's electronic device reports herlocation as being in the middle of the building as part of her requestto the service provider, for example due to GPS inaccuracy. As theservice provider cannot drive into the middle of the building where therequestor's location is being reported, which may not even be accurateat the time, the provider is forced to guess where an efficient pickuplocation around the building may be. Because the building is large withmany doors, the requestor may have to walk a long route to get to theprovider's reported location, which could itself be inaccurate.

In some cases, the requestor's ultimate destination may be best servedby meeting a provider on a particular road segment adjacent the buildingthat goes in a certain direction (e.g., towards the destination, on acorrect one-way street, etc.). Inefficient pickup locationdeterminations create provider downtime, as he must wait for therequestor to arrive, and in some cases can lead to cancellation ofrequests and re-booking of additional requests if the parties are notable to find each other within an acceptable amount of time. As theprovider is part of an on-demand service, he may not be able to simplyprovide his service to another requestor in his current location if thecurrent request, for which he traveled from another area, is canceled;instead, he may be routed across town for another on-demand request,whereas if he had been able to pick up the requestor at a convenientlocation around the building, another provider could have accepted thesubsequent request across town, perhaps being able to arrive faster.Provider downtime and inefficient utilization of travel time isproblematic because it reduces ride system resources in an area andleads to lower utilization of the provider. Accordingly, the difficultyin matching requests with providers using sub-optimal geographic-basedestimates leads to mismanagement of provider resources as well asincreased system resources usage (e.g., data processing, bandwidth, andsystem communications). For instance, providers may cancel a matchedrequest where the requestor is not present at the pickup location, sothat they do not have so much downtime waiting on a requestor. Thus,requestors must place more requests in order to obtain a ride as one ormore matched requests are canceled before the requestor can locateand/or navigate to the provider. Accordingly, more requests may begenerated and processed by a matching service, more accepted, rejected,and declined requests must be processed by the requestor and providerdevices, and more system resources must be expended for a matched rideto be successfully completed. Cascading requests and cancellations canlead to provider downtime, as multiple providers accept thesoon-to-be-cancelled transport requests in lieu of other requests. Thecancelled providers may also grow frustrated with the cancellations andstop providing transport altogether in a particular area, leading to alack to provider service in that area, potentially at a time of actualhigh demand.

Accordingly, the specific technical problem of inefficientdynamically-created pickup location predictions in a computer-baseddynamic transportation matching system lead to mismanagement of providerresources as well as at least increased data processing, bandwidthutilization, memory usage, and system communications as delayaccumulates and cascading requests and cancellations are sent to adynamic transportation matching system. Therefore, the techniquesdescribed herein improve the operation and efficiency of atransportation matching system, as well as the computing systemsutilized as part of the transportation matching system infrastructure.By alleviating technical problems specific to dynamic transportationmatching systems (e.g., inefficient dynamically-created pickup locationpredictions, cascading requests and cancellations (e.g., “buttonmashing”), etc.), the techniques described herein improve thecomputer-related technology of at least network-based dynamictransportation matching systems by increasing at least computationalefficiency and computer resource allocation of at least the computersystems on which the techniques are performed.

At least one embodiment provides techniques, including systems andmethods, for determining accurate, efficient, and/or convenient pickuplocation where a provider may meet a requestor. In one embodiment, a setof instances of prior transport data of various types (e.g., priorrequest locations, prior actual pickup locations, prior transport startlocations, prior transport destinations, and/or prior actual drop-offlocations) may be associated with a geographic location. For example, aparticular requestor may have multiple locations in a geographic areawhere she generates requests for service, where she is picked up by aprovider, where the service actually begins (e.g., where the providerindicates to the transportation matching system that the service hasstarted), where she provides as her destination, and where she isactually dropped-off by a provider. These instances of transport datamay cluster around common locations associated with the requestor. Asmore instances of prior transport data are generated around variousgeographical areas (e.g., home, work, frequented businesses, transitstops, etc.), a determination of an efficient pickup location (i.e., apin location) in the vicinity of the geographical areas may be made,according to various embodiments, although other types of locationscorresponding to various types of transport data may also be determinedaccording to various embodiments, such as destination, drop-off points,etc.

In an embodiment, a requestor may not be in a location where she haspreviously generated prior transport data that could be utilized as partof an approach to determine an appropriate pickup location. For example,a requestor may have traveled to a new city for work, and be in abuilding at which she has never requested transport (or other on-demand)service. The building may be large and border several streets, and haveseveral entrances and exits; therefore, if the requestor makes a requestwhile inside the building, and her GPS location is provided to thedynamic transportation matching system as (accurately or inaccurately)somewhere inside the building rather than at a curb surrounding thebuilding, then neither the requestor nor the provider will know where tomeet. For example, which side of the building, which exit, even in somecases, which elevation; such as an airport, where departures may be onone level and arrivals on another level. According to an embodiment, ifthe requestor is associated with fewer than a threshold number ofinstances of prior transport data at a location (i.e., a geographicalarea), then a determination of geohashes corresponding to the locationmay be made, at varying levels. For example, a geohash of therequestor's location at geohash-6. The geohash may be refined, such asto geohash-7 in some embodiments. In the selected geohash, priortransport data for other people is analyzed to determine variousinstances of prior transport data corresponding to their previousrequests. For example, 100 people in the building may have made numerousprior service requests where their request location was reported to beinside the building; in some embodiments, it is determined how closetheir prior request locations are to the current requestor's requestlocation. Their actual pickups related to those requests are analyzed tomake a prediction where an efficient pickup location around the(unfamiliar to the requestor) building may be, based on other people'sprior transport data. In some embodiment, additional signals may beutilized, such as relationship of the other people to the requestor(e.g., location, company, etc.), destinations of the other people,weather, time of day, etc. These signals, including the amount and/ortype of prior transport data, may be assigned varying weights inevaluations to determine one or more predicted pickup locations.

Additionally, one or more embodiments may use road segment data, such asmay be stored by a data structure related to road segment system nodesassociated with length. Direction, elevation, etc., and furtherassociated with pickup/drop-off locations and distance traveled alongrespective nodes to get there. For example, road segment data having aparticular direction in the geographical area related to the request maybe determined, and the directionality evaluated with respect to anavigation route to the requested destination. If a road segment withina threshold distance of a predicted pickup location has road segmentdata that is more efficient (e.g., is in a direction headed towards thedestination, etc.), then the predicted pickup location may be adjusted(or initially placed in some embodiments) to be adjacent (e.g.,“snapped”) to the appropriate road segment.

Accordingly, embodiments filter potential pickup and/or drop-offlocations that will increase the efficiency of the system and optimizethe matching system's request matching processing to minimize the numberof requests that will require system resources to process. Additionally,filtering transport data related to request locations in order toestablish efficient pickup and/or drop-off locations results in moreefficient processing of requests by the matching system, leading tofewer system resources necessary to handle a ride request load and anamount of requestor demand in an area. Accordingly, request matchingsystems are improved through the more efficient matching processing andfewer resources are required to process the same amount of requestordemand.

Although examples described herein generally focus on on-demandride-sharing applications, any suitable service may be performed usingsimilar functionality. For example, delivery of services may have asimilar process implemented to find the location of delivery of theservice. Additionally, a “provider” as discussed herein may include, forexample, an automated dynamic transportation matching system thatdispatches autonomous vehicles to respond to transport requests, anautonomous or otherwise computer-controlled vehicle (in whole or inpart), or a human driver.

FIG. 1 illustrates an example of a dynamic transportation matchingsystem 130 including a matched provider 140A and requestor 110A, inaccordance with an embodiment of the present techniques. The dynamictransportation matching system 130 may be configured to communicate withboth the requestor computing device 120 and the provider computingdevice 150. The provider computing device 150 may be configured tocommunicate with a provider communication device 160 that is configuredto easily and efficiently display information to a provider 140 and/or arequestor 110. The requestor 110 may use a ride matching requestorapplication on a requestor computing device 120 to request a ride at aspecified pick-up location. The request may be sent over a communicationnetwork 170 to the dynamic transportation matching system 130. The riderequest may include transport request information that may include, forexample, a request location, an identifier associated with the requestorand/or the requestor computing device, user information associated withthe request, a location of the requestor computing device, a requesttime (e.g., a scheduled ride may have a future time for the request tobe fulfilled or an “instant/current” time for transportation as soon aspossible), and/or any other relevant information to matching transportrequests with transport providers as described herein. The requestlocation may include, for example, a current location, a futurelocation, a “best fit/predictive” location, a curb segment, or any othersuitable information for indicating a location for a requestor to befound at the current time or in the future. In some embodiments, thetransport request may further include other request related informationincluding, for example, requestor transport preferences (e.g., highwayvs. side-streets, temperature, music preference (link to 3^(rd) partymusic provider profile, etc.), personalized pattern/color to display onprovider communication device, etc.) and requestor transportrestrictions (e.g., pet friendly, child seat, wheelchair accessible,etc.).

The requestor computing device may be used to request services (e.g., aride or transportation, a delivery, etc.) that may be provided by theprovider 140A. The provider computing device may be used to contactavailable providers and match a request with an available provider.However, a location associated with the request may not be the mostefficient location with regard to provider travel time to the requestlocation and/or provider travel time from the request location to adestination location. For example, a provider may have to take a long,circuitous route to the request location, whereas if the requestor wereto walk down to a new curb segment on an adjacent block, the providerwould have a shorter route to the request location, and/or the providermay have a more efficient route to the destination (e.g., not have toloop around a block, etc.). Thus, embodiments provide a solution thatallows a dynamic transportation matching system to determine whetheranother curb segment within a threshold distance of the request locationwould reduce travel times associated with one or more legs of a journey(e.g., the journey to the request location, the journey from the requestlocation, a journey with multiple request locations and/or destinationlocations, etc.) to ensure the most efficient matching leading to theleast amount of provider downtime and the most possible throughput bythe dynamic transportation matching system.

The dynamic transportation matching system (also referred to as a “ridematching system”) 130 may identify available providers that areregistered with the dynamic transportation matching system 130 throughan application on their provider communication device 150A. The dynamictransportation matching system 130 may send the ride request to aprovider communication device 150A and the provider 140A may accept theride request through the provider communication device 150A.Additionally and/or alternatively, in some embodiments, the provider maybe predictively and/or automatically matched with a request such thatthe provider may not explicitly accept the request. For instance, theprovider may enter a mode where the provider agrees to accept allrequests that are sent to the provider without the ability to declineand/or review requests before accepting. In either case, the providercomputing device may return information indicative of a match indicatingthat the provider received the transport request. For example, theinformation indicative of a match may include a provider acceptindicator (e.g., a flag) that indicates the provider received andaccepts the indicator or could include a variety of differentinformation. For example, the information indicative of a match mayinclude location information, other route information for otherpassengers in the vehicle, a schedule for the provider providinginformation regarding future availability (e.g., when they are going togo offline), diagnostics associated with the car (e.g., gas level,battery level, engine status, etc.), and/or any other suitableinformation. The provider 140A and the requestor 110A may be matched andboth parties may receive match information associated with the otherrespective party including requestor information (e.g., name,representative symbol or graphic, social media profile, etc.), providerinformation (e.g., name, representative symbol or graphic, etc.),request location, destination location, respective computing devicelocation, rating, past ride history, any of the other transport requestinformation and/or provider acceptance information identified above,and/or any other relevant information for facilitating the match and/orservice being provided. Thus, the dynamic transportation matching system130 may dynamically match requestors and providers that are distributedthroughout a geographic area.

FIG. 2 illustrates an example approach for identifying prior transportdata in a geographic location to be utilized by a dynamic transportationmatching system, in accordance with an embodiment of the presenttechniques. In the example 200 of FIG. 2, various buildings 202-206 aresituated adjacent roads in a road system. In each building 202-206, arequestor has made a transportation request, which is ultimately matchedto a provider 214, having a request location 208-212. This location maybe reported by a GPS module on the requestor's electronic device, forexample. In some cases, the location may be accurate, in that therequestor was actually in a particular location when the request wassent to the dynamic transportation matching system. In other cases, thelocations 208-212 may represent inaccurate GPS locations, such as in alarge and/or shielded building where GPS signals are traditionallyinaccurate. In other cases, the requestor may have moved the requestlocations 208-212 from an initial location, perhaps one that was evenmore inaccurate.

According to an embodiment, prior transport data for the particularrequestor in the example 200 of FIG. 2 has been stored and associatedwith a geographic area. The prior transport data, as identified in thelegend 220, comprises numerous types; for example, prior pickuplocations (i.e., where the requestor was actually picked up as theresult of a request, such as may be reported by location services of therequestor's and/or provider's 214 electronic devices), prior drop-offlocations (i.e., where the requestor was actually dropped off at the endof a completed request, such as may be reported by location services ofthe requestor's and/or provider's 214 electronic devices), and priorrequest destinations (i.e., where the requestor indicated the requestwould temporarily stop and/or end). Other types of transport datainstances are envisioned, such as prior transport start locations (i.e.,where the provider 214 indicated to the dynamic transportation matchingsystem that the request has actually started), as well as prior requestlocations. In an embodiment, prior transport data may be stored andassociated with any number of alternate or additional criteria; forexample, prior transport data may be stored and associated with times oftransport requests (e.g., requests, pickups, drop-offs, etc.), weatherdata, event data (e.g., that may be time- or geographically-related andacquired in an embodiment by receiving data from a data store, such asin a response to an application programming interface (API) request),traffic density data (e.g., that may be used as part of a determinationregarding contextual activities; for example, a request made at alocation at a particular time, along with traffic density being low, mayindicate a context that a person is not at work and may be performing aleisure activity such as working out, attending an event, etc., while arequest at a busy street corner during rush hour may indicate a contextthat a person is arriving/leaving work), etc. Social media, event,and/or contact data associated with a person's computing device may alsobe used, such as to determine contextual activities.

In the example 200 of FIG. 2, the requestor has made a current request208 having a particular location in a geographical area. In anembodiment, clusters of prior transport data instances around previousrequests are identified. For example, various geographical areasassociated with the requestor and/or the requestor's computing deviceare determined, and prior transport data associated with thosegeographical areas is identified; for example, around the buildings202-206 in the example 200 of FIG. 2. These clusters of prior transportdata may be filtered, such as by being within a threshold amount of time(e.g., within the last month), being within a threshold distance ofprior request locations, an average of multiple prior request locations,buildings associated with the requestor and/or prior request locations,road segments, etc.

In an embodiment, after clusters of prior transport data instances areidentified, then it is determined whether the current request location208 is within a geographical area associated with one or more of theclusters. In the example of FIG. 2, the request location 208 has asubstantial number of instances of prior transport data identified ashaving been previously generated in the vicinity. In an embodiment, itis determined whether the geographical area associated with the requestlocation 208 has at least a particular amount of instances of priortransport data. For example, there may be a threshold number ofinstances to be satisfied within a certain area. A threshold number ofone or more types of instances may be required, in some embodimentsbeing based on whether the current action is a transport request or atransport drop-off. For example, in determining an efficient pickuplocation for the current request 208, unless the geographical areaassociated with the request 208 has at least a threshold number of priorpickups, as opposed to drop-offs, then the prior transport data may bedisregarded. In an embodiment, when determining a target pickup location216 based on a set of prior transport data, certain instance types maybe weighted more heavily, as may instance types being closer and/orfarther away from a particular location, such as a building 202, etc.

In an embodiment, a sub-cluster of instances of prior transport data maybe identified. For example, not all instances of prior transport data ina particular geographical area (e.g., a building) may be as valuable asothers. Some may be far away from the geographical area, such as whenthe requestor previously walked down the block to meet the provider 214,resulting in a prior pickup location instance that is far away from theprior pickup location's corresponding prior request location, and thegeographical area. A sub-clustering approach in an embodiment uses aboundary 218 around the current request location 208 and/or thegeographical area associated with the cluster. This boundary may be auniform radius of a particular distance around the request location 208,or may be an irregularly-shaped boundary, depending on the embodiment.For example, “noisy” instances of prior transport data may not bevaluable and/or relevant to a current request location 208; therefore, aboundary 218 is generated outside of which instances of prior transportdata are disregarded, weighted less heavily, etc. A determination of aboundary 218 may be based on various factors, such as number ofinstances of prior transport data contained within, as discussed withregard to FIG. 3. In an embodiment, a boundary 218 is generated suchthat it includes certain road segments. For example, a request location208 may be adjacent to roads. In the example 200 of FIG. 2, the requestlocation 208 is adjacent Main Street and 2^(nd) Avenue. The boundary 218for a sub-clustering approach may be generated that includes roadsegments from both Main Street and 2^(nd) Avenue, such as theintersection, as well as road segments of both streets that travel inopposite directions (i.e., the side of the street adjacent the requestlocation 208 and the other side of the street, for a two-way street).

In an embodiment, a target pickup location 216 (or in variousembodiments, a target drop-off location, etc.) may be determined basedon the request location 208, the geographical area associated with therequest location 208, and/or a set of instances of prior transport data,among other data. For example, a location of one or more of a set ofinstances of prior transport data, such as may be within a boundary 218of the request location 208, may be identified and evaluated todetermine a target pickup location 216, which provides a more accurateand efficient location where the requestor and provider 214 should meet.Embodiments of the disclosed techniques therefore offer an intelligentprediction of a requestor's intent. While a requestor may create atransport request that is associated with a location within a building,the intent of the requestor is not for the provider to drive their carinto the building; rather, it is to be met on the curb outside thebuilding, perhaps in front of a specific door. By evaluating priortransport data, such as a relationship between where the requestorpreviously identified as their request location versus where they wereactually picked up for that particular request (or an unrelatedrequest), then a dynamic transportation matching system may suggestpickup locations for future requests that are provided to both requestorand provider, rather than send the reported request location to theprovider and leave requestor and provider to find each other once theyboth are in the same general vicinity.

In an embodiment, a set of instances of various types of prior transportdata around a request location 208 is determined, such as within aboundary 218. These instances may then be evaluated with regard to eachother in order to suggest a target pickup location for the currentrequest location 208. For example, only prior pickup instances may beconsidered, and an average location of the prior pickup instancesselected as the target pickup location 216. In another example,locations of prior pickup instances may be given a weighting value of1.25, while prior drop-off instances receive a weighting value of 1.05,and prior destination instances receive a weighting value of 0.85. Bycombining the weighting values of each of the instances with theirlocations, a target pickup location 216 may be established that is basedon the request location 208 as well as a set of prior transport data. Inanother example, of a set of prior transport data, a prior requestlocation closest to the current request location 208 is determined, andthe location of the actual prior pickup location associated with thatparticular request is determined and set as the target pickup location216. In an embodiment, the next-closest prior request location in theset of instances of prior transport data is determined, and the locationof the actual prior pickup location associated with that particularrequest is determined, which is then averaged or otherwise combined withthe actual pickup location corresponding to the closest prior requestlocation. In an embodiment, the closest prior request location may beweighted more heavily in the determination.

In an embodiment, previous target pickup locations, generated using thetechniques described herein, that are within the geographical area maybe determined (e.g., within the boundary, etc.), and a distance betweeneach of the previous target pickup locations and the actual pickuplocation for that particular request is determined. For example, atarget pickup location next to one door may have been suggested in thepast, but the requestor and provider actually met 20 yards down thesidewalk. For each of the prior actual pickup locations, the associatedrequest location for that request is identified. For example, for thetransport request where the actual pickup was 20 yards down thesidewalk, the original request location (e.g., somewhere within thebuilding) is determined. That original request location is then comparedto the current request location 208, and the closer that originalrequest location is to the current request location 208, the actualpickup location for that original request location is more heavilyweighted in the determination of the target pickup location 216 for thecurrent request. In this manner, inaccuracy of similar former requestscan be used to predict pickup locations for a current request. Forexample, if a large number of prior requests are from locations in a farcorner of the building, and for each of those prior requests, a targetpickup location was generated that resulted in an actual pickup aroundthe corner, then it may be surmised that future requests from thatparticular far corner of the building should use the actual pickuplocations from the past requests, not another (inaccurate) target pickuplocation as before. This distance, as well as other distances, may bedetermined using the Haversine formula or other approach.

In an embodiment, other factors may be used in generating, increasing,decreasing, etc. of various weighting values assigned to instances ofprior transport data. For example, weather data may be used. When arequest is received on a rainy day, it may be relevant that certainactual pickup locations were used on previous rainy days; for example,by a door with a short distance to a convenient parking spot. Time datamay also be used. For example, many people may be congregating outside abuilding at 5 PM. Prior pickups at this time may have been further downthe street that may otherwise be efficient, to avoid the crowds ofpeople and vehicles. Various other data may also be used in thedetermination of target pickup locations (and in some embodiments,drop-off locations), such as destinations, road data (e.g.,construction, traffic, etc.), safety data (e.g., pedestrian accidentdata), budget for a particular transport request, such as over time oron a particular day, ratings associated with particular providers, etc.

In an embodiment, a target pickup location may be determined based onmovement of user-selectable locations in the past. For example, apotential target pickup location 216 may have been sent to a requestorin response to a prior request. In an embodiment, a requestor'scomputing device receives modified transport information from thedynamic transportation matching system after a transport match is made;for example, the requestor's computing device may receive a potentialtarget pickup location and display it in a manner that visuallydistinguishes it from the corresponding request location (e.g., a pinvs. a flashing blue dot), along with walking directions to the potentialtarget pickup location. In an embodiment, a requestor would provide anindication of acceptance of the potential target pickup location,although a requestor may in various embodiments move the potentialtarget pickup location to a new location. For example, a “pin” may beplaced on a map displayed at the requestor's computing device (e.g., aspart of map data provided by the dynamic transportation matching system,or by receiving data indicating a location of the potential targetpickup location and the device placing it on previously-existing mapdata). The requestor may then use the user interface of the computingdevice to modify the location of the pin (e.g., touching and dragging ona touch-sensitive screen). This modified location is then provided tothe dynamic transportation matching system. In an embodiment, a set ofprevious potential target pickup locations that were subsequently movedis determined, and the current potential target pickup location isanalyzed to determine whether it is within a threshold distance of oneor more of the previously-moved potential target pickup locations. Ifso, then the current potential target pickup location may berepositioned automatically (or initially sent corresponding to) to alocation corresponding to the ultimate position of one or more of thepreviously-moved potential target pickup locations. In an embodiment,the movement of potential target pickup locations is used in anaveraging and/or weighting approach to determining a potential targetpickup location, as discussed herein.

In an embodiment, the movement of a requestor may be analyzed todetermine whether an initial location of a potential target pickuplocation should be modified. For example, a target pickup location 216is determined, but the requestor is determined to be moving in adirection away from the target pickup location 216, such as down MainStreet towards 1^(st) Avenue in the example 200 illustrated in FIG. 2.This may indicate that the requestor's intent is to be picked upelsewhere, such as at the intersection of Main Street and 1^(st) Avenue,instead of in front of the building 202 from which the request 208 wasmade. The movement of the requestor may be observed, such as bybackground polling of a GPS or similar component of the requestor'scomputing device. If the requestor is determined to be moving away fromthe request location (and/or the target pickup location 216), and thismovement lasts for over a particular duration (e.g., one minute) and/orexceeds a threshold distance away from the request location and/or thetarget pickup location 216 (e.g., 20 yards from the request locationand/or the target pickup location 216), then the target pickup location216 may be adjusted based on the movement. For example, the targetpickup location 216 may “follow” the movement on a lagging basis toavoid overcorrections because of inaccurate GPS, or because therequestor was simply making a temporary deviation from the target pickuplocation 216, such as by visiting a food truck down the street to getdinner prior to heading home in the provider's vehicle 214.

FIG. 3 illustrates an example approach for identifying sets of priortransport data in a geographic location to be utilized by a dynamictransportation matching system, in accordance with an embodiment of thepresent techniques. In the example 300 of FIG. 3, multiple boundaries306-310 around a request location 304 in a building 302 are illustrated.In an embodiment, each of the boundaries 306-310 may represent aconfidence level associated with various instances of prior transportdata (as defined in the legend 220), and may be utilized in order todetermine a potential target pickup location within the geographicalarea, such as may include the building 302 and/or the request location304. For example, certain instances of prior transport data outside oneor more of the boundaries 306-310 may be excluded from the determinationof a potential target pickup location, or weighted in a manner so as tode-emphasize their importance in determining a potential target pickuplocation, for example.

In an embodiment, a particular boundary 306-310 used in thedetermination of a potential target pickup location, such as byeliminating or de-emphasizing potential instances of prior transportdata, may be accomplished by performing a sub-clustering of instances ofprior transport data, for example after a preliminary clustering ofinstances of prior transport data around geographic locations associatedwith a requestor, such as described with respect to FIG. 2 and elsewhereherein. For example, a number of instances of prior transport dataassociated with a geographic area (e.g., a geohash, a building, alocation, etc.) may be determined, such as by analyzing prior requestsand associated location data. These instances of prior transport datamay be associated with only one requestor or several, depending on theembodiment. For each of the instances of prior transport data, there isa corresponding location. For example, by working outward from a requestlocation and counting the number of instances of prior transport data,with the closest counted first, the next-closest counted next, and soon, a boundary may be established that contains a set of number ofinstances of prior transport data and has an outer bound (e.g., thecircumference) that is no further away from the request location thanthe furthest instance of prior transport data in the set. For example,the ten closest instances of prior transport data to a request locationare determined, and the boundary is set at a distance away from therequest location no greater than the furthest distance associated withthe ten closest instances. The eleventh closest instance would then beoutside the boundary.

FIGS. 4A-4B illustrate example approaches for identifying priortransport data in a geographic location to be utilized by a dynamictransportation matching system, in accordance with an embodiment of thepresent techniques. In the example 400 of FIG. 4A, a requestor generatesa transport request 404 at a particular location in a building 402 atthe intersection of two streets 416-418, and having two exits, one toeach street 416-418. In this example, the requestor does not have acluster of instances of prior transport data associated with thegeographic area; for example, she may be visiting this area for thefirst time, or have fewer than a threshold number of instances of priortransport data associated with the location. Therefore, a potentialtarget pickup location may not be able to be accurately determined basedon her prior transport data. However, other people in the geographicarea have made requests 406-410 for which there is a correspondingactual pickup location 406 a-410 a. By using other requestors' instancesof prior transport data, a target pickup location 404 a for the currentrequestor may be determined, according to various embodiments.

In an embodiment, geohash data 412, 414 may be used to determine aparticular geohash associated with the current request 404. For example,a geohash at a certain level may first be determined 412, then geohashesat a more granular level may be determined 414. A selected geohash isused to identify instances of prior transport data (e.g., that occurredwithin the particular geohash). In the example of FIG. 4A, there arethree prior requests 406-410 and three corresponding actual pickuplocations 406 a-410 a that are associated with other requestors in thepast, although in an embodiment, using currently-active requests, orrequests that happened within a threshold duration are envisioned. In anembodiment, an averaging approach may be used to determine a targetpickup location for the current request 404. For example, an averagelocation of the three actual pickup locations 406 a-410 a may beselected as a target pickup location. In other embodiments, a weightingapproach may be used to determine which, if any, of the set of priorrequests 406-410 and/or prior actual pickup locations 406 a-410 a to useand how important their locations are in the determination of a targetpickup location.

For example, geohash data, at varying levels, may be used to determineprior requests that are in proximity to the current request 404. In thisexample, one prior request 406 is in the same geohash level as thecurrent request 404. In an embodiment, the actual pickup location 406 acorresponding to the shared geohash may be used as the target pickuplocation 404 a, or may be given more weight in a determination that usesadditional data, such as the other prior requests 408-410, etc. Adetermination of a degree of importance (e.g., weighting) that may beassociated with one or more other instances of prior transport data406-410, 406 a-410 a may include a relationship of the requestorsassociated with the instances of prior transport data; for example,requestors that have devices on or otherwise associated with the sameWi-Fi network may be given greater weight, as it may indicate people whowork for the same company. Other requestors who have commonauthentication or access credentials on their devices may be givengreater weight. Common stored addresses (e.g., work, home, restaurants,etc.) on requestors' devices may indicate a relationship that would beuseful in determining a potential target pickup location, because peoplewith common features may have a reason to select (or have determined forthem) a particular actual pickup location; for example, a pickuplocation outside a particular door may be most convenient for employeesof a particular company that exits out an elevator on one side of thebuilding; thereby eliminating a need to walk all the way across a lobby.Similar destinations may also serve as an indicator or where a targetpickup location 404 a should be placed. For example, if a subset ofprior requests 406-410 shared a certain destination, and a cluster ofactual pickup locations for each of the subset may be identified asbeing outside a particular door, on a particular side of the street, ina particular cul-de-sac nearby, etc., then it may be determined that acurrent request 404 sharing a destination with one or more of the priorrequests 406-410 may be most efficiently served by placing the targetpickup location 404 a near where the other requests were actually pickedup.

In the example 420 of FIG. 4B, a target pickup location 404 b may be“snapped” or otherwise moved in proximity to a road segment that isdetermined based at least on instances of prior transport data to beefficient for the particular destination 428 associated with the request404. It should be understood that reference numbers are carried overbetween figures for similar components for purposes of explanation, butthat such use should not be interpreted as a limitation on the variousembodiments. For example, FIG. 4B illustrates four previous requests406-410, 426. One request 426 has a corresponding actual pickup location426 a across the street 418. By determining road segment 422, 424 datafor the road 418, at least a direction 422 a, 424 a may be determined.Based on a navigation route to a destination 428 associated with thecurrent request 404, it is determined that the initial travel directionon the route is going in a particular direction 424 a shared by one ofthe road segments 424, for example within a threshold distance of thecurrent request 404. Of the four previous requests 406-410, 426, it isdetermined that one 426 was associated with the same destination 428, ora destination that required a similar direction of initial travel. As aresult, the actual pickup location 426 a of the similar request 426 maybe used (e.g., solely, weighted more heavily as part of aweighting/averaging approach, etc.) in order to reposition or initiallyset the target pickup location 404 b instead of another potential targetpickup location 404 a, which may be more appropriate if a destination isnot taken into account. According to an embodiment, a data structure(e.g., a portable location format) describing road segments may begenerated that describes road segment nodes by such factors asdirection, elevation, distance, etc., such as in relation to instancesof prior transport data. Such a data structure could be used in order todetermine a directionality of various clusters of instances of priortransport data, for example.

FIG. 5 illustrates an exemplary flow diagram 500 of a method for usingprior transport data as part of an approach for predicting locations, inaccordance with an embodiment of the present techniques. Although thisfigure may depict functional operations in a particular sequence, theprocesses are not necessarily limited to the particular order oroperations illustrated. One skilled in the art will appreciate that thevarious operations portrayed in this or other figures can be changed,rearranged, performed in parallel or adapted in various ways.Furthermore, it is to be understood that certain operations or sequencesof operations can be added to or omitted from the process, withoutdeparting from the scope of the various embodiments. In addition, theprocess illustrations contained herein are intended to demonstrate anidea of the process flow to one of ordinary skill in the art, ratherthan specifying the actual sequences of code execution, which may beimplemented as different flows or sequences, optimized for performance,or otherwise modified in various ways.

At step 502, the dynamic transportation matching system receives a riderequest from a requestor computing device. The ride request may includea request location (i.e., pick-up location) for the ride request thatcorresponds to GPS or other location data of the requestor computingdevice, a request time, a requestor identifier, a requestor computingdevice location, and/or any other relevant information associated withthe ride request and/or requestor.

At step 504, a matched provider is identified. For example, the closestprovider is selected to match with the request. The best provider matchmay be made using any suitable criteria including rating, existingtravel route, and/or any other suitable information.

At step 506, clusters of prior transport data are determined. Forexample, in particular geographical areas that may correspond to acurrent location of the requestor and/or the requestor computing device,the current ride request, etc. The clusters may comprise instances ofprior transport data types, such as prior request locations, prioractual pickup locations, prior transport start locations, priortransport destinations, and/or prior actual drop-off locations. Invarious embodiments, the instances of prior transport data may beassociated with the current requestor or other requestors, such as thosewho made requests in the past at the same general location, etc. Theclusters may be determined to be associated with various locations thathave meaning to the requestor, such as their home, their work,frequently-visited businesses, transit stops, etc. The clusters may becomprised of instances of prior transport data that are determined to berelated enough to support their inclusion with other instances of priortransport data to form the cluster; for example, being within athreshold distance of each other; being associated with the samebuilding; having common corresponding instance types that reflect one ormore legs of a transport request (e.g., request to pickup to start todestination to drop-off), manual adjustment or indication ofrelatedness, etc.

At step 508, the geographic areas and/or locations (e.g., buildings,etc.) associated with the clusters of instances of prior transport dataare compared to the current request location. For example, if therequest location is associated with a certain location (e.g., abuilding), the nearby clusters are evaluated to determine whether one ormore of them are within a threshold distance of the request location, orare otherwise related.

At step 510, in an embodiment, a sub-clustering approach is performed,where the cluster or clusters corresponding to the request location (andin some embodiments, a destination location) is modified to select asubset of the instances of prior transport data comprising the cluster.For example, by only utilizing a set of the X closest instances of priortransport data in a determination of a target pickup location, orestablishing a boundary around the request location of lesser area thanthe geographic area associated with the cluster, and selecting theinstances of prior transport data within the boundary (or boundaries).

At step 512, a target pickup location is determined, for example basedon the location of the request and the instances of prior transport datain the cluster and/or sub-cluster. Various approaches may be utilized toascertain a target pickup location from locations of instances of priortransport data. For example, all locations of instances of priortransport data may be mapped and a location in the nominal center of theselected instances used as the target pickup location. In otherembodiments, various instances of the prior transport data may beweighted in a determination more heavily than other instances. Forexample, a target pickup location may be placed in a location thatrelates more to a certain subset of the instances of prior transportdata, such as actual pickup locations of requests that share a similarlocation with the current request, and so forth. Additional signals maybe used to determine which instances of prior transport data should beconsidered more informative/valuable/accurate in a calculation orestimation of a target pickup location; for example, current and pastdata corresponding to weather, time, holiday, event, traffic, etc.Addresses that are saved on the requestor's device (“shortcuts”) may beused to “pre-fill” a target pickup location (different from the requestlocation) based on the requestor's history and her interaction with therequest location in the past.

At step 514, modified ride request information is sent to the providerdevice. For example, the ride request information sent to the dynamictransportation matching system as part of the request included a requestlocation. As discussed herein, the request location may not accuratelyreflect the requestor's intent regarding where they would like toactually be picked up. For example, perhaps the GPS signal isinaccurate, or the request location is in a building, etc. Once a targetpickup location is determined according to the techniques describedherein, the dynamic transportation matching system may modify the riderequest information to reflect the target pickup location instead of orin addition to the request location, and send the modified ride requestinformation to the matched provider so they can navigate to the targetpickup location.

At step 516, the target pickup location is sent to the requestorcomputing device, for example as part of the modified ride requestinformation. In an embodiment, the requestor may send an indication tothe dynamic transportation matching system that she would like to changethe suggested target pickup location, such as by dragging a “pin” to anew location on a map displayed on the screen of the requestor computingdevice. This will send another set of modified ride request informationto the dynamic transportation matching system for additional processingand sending to the provider.

FIG. 6 illustrates an exemplary flow diagram 600 of a method for usinggeohash-related prior transport data as part of an approach forpredicting locations, in accordance with an embodiment of the presenttechniques.

At step 602, the dynamic transportation matching system receives a riderequest from a requestor computing device. The ride request may includea request location (i.e., pick-up location) for the ride request thatcorresponds to GPS or other location data of the requestor computingdevice, a request time, a requestor identifier, a requestor computingdevice location, and/or any other relevant information associated withthe ride request and/or requestor.

At step 604, a matched provider is identified. For example, the closestprovider is selected to match with the request. The best provider matchmay be made using any suitable criteria including rating, existingtravel route, and/or any other suitable information.

At step 606, a determination is made whether a threshold number ofinstances of prior transport data corresponding to the request locationexist. For example, if the location has a cluster of instances of priortransport data around it and the number of instances exceeds a thresholdnumber, then control proceeds to step 506 as described with regard toFIG. 5.

If there are insufficient instances of prior transport data associatedwith the current requestor, then at step 610, geohashes associated withthe request location are determined. For example, a geohash-6 andgeohash-7 of the request location may be obtained.

At step 612, prior requestors (not the current requestor) who have maderequests associated with the selected geohash are determined. In anembodiment, the individual accounts associated with the requests made inthe geohash are accessed for analysis, while in an embodiment, only therequests with locations in the geohashes are retrieved.

At step 614, instances of prior transport data, associated with theother requestors, that occurred in the selected geohash are analyzed todetermine a predicted target pickup location. For example, the otherrequests used as part of the determination may only come from requestsmade in the selected geohash, while in other embodiments, an averagingor weighting approach may be used to determine which locationsassociated with instances of prior transport data (e.g., actual pastpickup locations) will be considered more meaningful in an estimation ofa target pickup location. For example, actual past pickup locations ofrequestors that share a common destination with the current requestormay be weighted more heavily in the determination, along with othersignals as discussed herein.

At step 616, modified ride request information is sent to the providerdevice. For example, the ride request information sent to the dynamictransportation matching system as part of the request included a requestlocation. As discussed herein, the request location may not accuratelyreflect the requestor's intent regarding where they would like toactually be picked up. For example, perhaps the GPS signal isinaccurate, or the request location is in a building, etc. Once a targetpickup location is determined according to the techniques describedherein, the dynamic transportation matching system may modify the riderequest information to reflect the target pickup location instead of orin addition to the request location, and send the modified ride requestinformation to the matched provider so they can navigate to the targetpickup location.

At step 618, the target pickup location is sent to the requestorcomputing device, for example as part of the modified ride requestinformation. In an embodiment, the requestor may send an indication tothe dynamic transportation matching system that she would like to changethe suggested target pickup location, such as by dragging a “pin” to anew location on a map displayed on the screen of the requestor computingdevice. This will send another set of modified ride request informationto the dynamic transportation matching system for additional processingand sending to the provider.

FIG. 7 illustrates an example block diagram 700 of a dynamictransportation matching system 130, in accordance with an embodiment ofthe present techniques. As described above, the dynamic transportationmatching system 130 may identify and facilitate request matching fromrequestors 110 associated with requestor computing devices 120 withavailable providers 140 associated with provider computing devices 150.The dynamic transportation matching system 130 may include a requestorinterface 131, a provider interface 132, and a ride matching module 133including a location estimation module 134, and a provider selectionmodule 135. The dynamic transportation matching system 130 may alsoinclude a requestor information data store 136A, a provider informationdata store 136B, a historical ride data store 136C, and a navigationdata store 136D which may be used by any of the modules of the dynamictransportation matching system 130 to obtain information in order toperform the functionality of the corresponding module. The dynamictransportation matching system 130 may be configured to communicate witha plurality of requestor computing devices 120 and a plurality ofprovider computing devices 150. Although the dynamic transportationmatching system 130 is shown in a single system, the dynamictransportation matching system 130 may be hosted on multiple servercomputers and/or distributed across multiple systems. Additionally, themodules may be performed by any number of different computers and/orsystems. Thus, the modules may be separated into multiple servicesand/or over multiple different systems to perform the functionalitydescribed herein.

Although embodiments may be described in reference to ride requests, anynumber of different services may be provided through similar request andmatching functionality. Accordingly, embodiments are not limited to thematching of ride requests and one of ordinary skill would recognize thatembodiments could be implemented for any number of different servicesthat have requestors and providers being matched through a network ofconnected computing devices.

The requestor interface 131 may include any software and/or hardwarecomponents configured to send and receive communications and/or otherinformation between the dynamic transportation matching system 130 and aplurality of requestor computing devices 120. The requestor interface131 may be configured to facilitate communication between the dynamictransportation matching system 130 and the requestor application 121operating on each of a plurality of requestor computing devices 120. Therequestor interface 131 may be configured to periodically receive riderequests, location information, a request location (also referred to asa “pick-up” location, although in some embodiments, a request locationand an actual or target pick-up location are different events),requestor status information, a location of the requestor computingdevice, progress toward a request location by the requestor computingdevice, and/or any other relevant information from the requestorcomputing device 120 when the requestor application 121 is active on therequestor computing device 120. The ride request may include a requestoridentifier, location information for the requestor computing device 120,a pick-up location for the ride request, one or more destinationlocations, a pick-up time, and/or any other suitable informationassociated with providing a service to a requestor. The ride request maybe sent in a single message or may include a series of messages. Theride matching module 133 may receive the ride request and update ahistorical ride data store 136C with the ride request information,including types of instances of prior transport data (e.g., priorrequest locations, prior actual pickup locations, prior transport startlocations, prior transport destinations, and/or prior actual drop-offlocations, etc.).

Additionally, the requestor interface 131 may be configured to send ridematch messages, location information for the provider computing device,provider information, travel routes, pick-up estimates, trafficinformation, requestor updates/notifications, and/or any other relevantinformation to the requestor application 121 of the requestor computingdevice 120. The requestor interface 131 may update a requestorinformation data store 136A with requestor information received and/orsent to the requestor, a status of the requestor, a requestor computingdevice location, and/or any other relevant information, such aslocations of instances of prior transport data as described above.

A requestor computing device 120 may include any device that isconfigured to communicate with a dynamic transportation matching system130 and/or provider computing device 150 over one or more communicationnetworks 170. The requestor computing device 120 may comprise aprocessor, a computer-readable memory, and communication hardware and/orsoftware to allow the requestor computing device 120 to communicate overone or more communication networks 170. For example, a requestorcomputing device 120 may include a mobile phone, a tablet, a smartwatch, a laptop computer, a desktop computer, and/or any other suitabledevice having a processor, memory, and communication hardware. In someembodiments, the requestor computing device 120 may include a requestorapplication 121 that is configured to manage communications with thedynamic transportation matching system 130 and interface with the user(i.e., requestor) of the requestor computing device 120. The requestorapplication 121 may allow a user to request a ride, monitor the statusof a matched ride, pay for a ride, monitor past rides, perform any otherrequestor-oriented services related to the dynamic transportationmatching system 130, and/or obtain any other requestor-orientedinformation from the dynamic transportation matching system 130.

The provider interface 132 may include any software and/or hardwareconfigured to send and receive communications and/or other informationbetween the dynamic transportation matching system 130 and a pluralityof provider computing devices 150. The provider interface 132 may beconfigured to periodically receive location information of the providercomputing device 150, provider status information, and/or any otherrelevant information from the provider computing device 150 when theprovider application 151 is active on the provider computing device 150.Additionally, the provider interface 132 may be configured to send riderequests, location information of a requestor computing device 120,pick-up locations, travel routes, pick-up estimates, trafficinformation, provider updates/notifications, and/or any other relevantinformation to the provider application 151 of the provider computingdevice 150. The provider interface 132 may update a provider informationdata store 136B with provider information received and/or sent to theprovider, a status of the provider, a provider computing devicelocation, and/or any other relevant information, including locations ofinstances of prior transport data as described above.

A provider computing device 150 may include any computing device that isconfigured to communicate with a dynamic transportation matching system130 and/or provider computing device 150 over one or more communicationnetworks 170. The provider computing device 150 may comprise aprocessor, a computer-readable memory, and communication hardware and/orsoftware to allow the provider computing device 150 to communicate overone or more communication networks 170. For example, a providercomputing device 150 may include a mobile phone, a tablet, a smartwatch, a laptop computer, a desktop computer, and/or any other suitabledevice having a processor, memory, and communication hardware. In someembodiments, the provider computing device 150 may include a providerapplication 151 that is configured to manage communications with thedynamic transportation matching system 130 and interface with the userof the provider computing device 150. The provider application 151 mayallow a user to accept a ride request, monitor the status of a matchedride, obtain or generate navigation directions or a mapped route for amatched ride, get paid for a ride, monitor past rides, perform any otherprovider-oriented services related to the dynamic transportationmatching system 130, and/or obtain any other provider-orientedinformation from the dynamic transportation matching system 130.

The ride matching module 133 may include a software module that isconfigured to process ride requests, ride responses, and othercommunications between requestors and providers of the dynamictransportation matching system 130 to match a requestor and a providerfor a requested service. For example, the ride matching module 133 maybe configured to identify available providers for a ride request from arequestor by identifying a geographic region associated with the pick-uplocation and may search a provider information data store 136B toidentify available providers within a predetermined distance of thepick-up location and/or the geographic region.

The ride matching module 133 may include a location estimation module134 and a provider selection module 135 that are configured to allow theride matching module to perform efficient matching at targetpickup/destination locations using the techniques described herein. Forexample, when the ride matching module 133 receives the request, theride matching module 133 may identify available providers in thegeographic area around the request location. The ride matching module133 may use a threshold distance (e.g., 10 miles, 15 miles, etc.), oneor more zip codes or other geographic identifiers (e.g., streets,blocks, neighborhoods, city, region, etc.), or any other suitablegeographic limitation to identify available providers relevant to arequest location. For example, the ride matching module 133 may searchthe provider information data store 136B to identify any availableproviders that are located within a certain distance from the requestlocation or have a threshold estimated time of arrival (ETA) to therequest location and/or a destination location associated with therequest. The ride matching module 133 may also limit the search foravailable providers to those that meet ride request criteria such thatthe available provider can serve the request. For example, whether aprovider vehicle is a sedan, luxury, SUV, or other type of car, has aparticular type of feature or amenity (e.g., car seat, dog friendly,etc.), has a number of available seats (e.g., request for 2 people,etc.), and/or may use any other stored information at the dynamictransportation matching system to limit available providers to thosethat can serve the request.

Once the ride matching module 133 identifies the available providers inthe area, the ride matching module 133 may calculate an estimated traveltime for each of the providers from their current location to therequest location. As discussed above, the ride matching module 133 mayincorporate traffic, weather, road closures, and/or any other conditionsthat may affect travel time into the estimation. The ride matchingmodule 133 may use historical ride data that is relevant for the time ofday, streets and geographic region, as well as stored previous ridesover those times, areas, road conditions, and/or any other informationto obtain an estimate for the provider to travel from their currentlocation to the request location. For example, the ride matching module133 may be configured to obtain the location of each of the providercomputing devices. The ride matching module 133 may be configured toidentify the request location and map navigation routes for each of theproviders and the requestor to the request location. The ride matchingmodule 133 may calculate an estimated time of arrival for a variety ofdifferent routes based on navigation information obtained from anavigation data store 136D. The navigation information may includereal-time and historical traffic information, historical travel timeinformation, known routes for a geographic area or region, trafficrules, and/or any other suitable information for mapping and/oridentifying potential routes for traveling from one location to anotherbased on a type of transportation (e.g., driving, biking, sailing,flying, etc.). The ride matching module 133 may map a plurality ofpossible routes from the provider location to the request location aswell as the alternate request locations and generate an estimatedarrival time for each of the potential mapped routes. The ride matchingmodule 133 may select the fastest route and/or the most probable routefor each of the providers and the corresponding estimated travel timefor that route as the estimated travel time for the provider. The ridematching module 133 may incorporate current traffic conditions, roadclosures, weather conditions, and any other relevant travel time relatedinformation to calculate an estimated arrival time for the provider. Theestimated arrival time may also be calculated by taking an average ofthe arrival time of each of the mapped routes, selecting the estimatedarrival time for the fastest route, receiving a selection of one of thepotential routes by the provider, identifying the route being takenbased on the route being used by the provider, and/or through any othersuitable method. If the provider makes a wrong turn and/or follows adifferent route than that calculated by the ride matching module 133,the ride matching module 133 may obtain the updated location of theprovider computing device and recalculate the possible routes andestimated arrival times. As such, the estimated travel times may beupdated as travel and road conditions, weather, etc. are updated.Accordingly, the ride matching module 133 may determine a navigationroute associated with the request location and an estimated travel timefor each of the providers. Further, the estimated time may be determinedthrough any suitable method including taking an average of multipleroutes, selecting the fastest route, adding additional cushion time whencertainty is low for the estimate of the time, etc. Accordingly, theride matching module 133 may determine an estimated travel time for eachof the available providers in the area that may potentially match therequest.

The location estimation module 134 may use locations of instances ofprior transport data as described above to estimate a target pickuplocation. For example, the location estimation module may performclustering of instances of prior transport data and associate theclusters with various locations and/or geographic areas, such as may beobtained from navigation data store 136D or requestor information 136A.The location estimation module 134 may use the instances of priortransport data to estimate a location for a target pickup location thatis related to a request location. As discussed herein, a requestor mayprovide a request location in the middle of a building for variousreasons; however, the requestor's intent is to be picked up somewhereoutside the building, preferably in a location that leads to anefficient journey and allows the requestor and the provider to meet eachother without undue delay. The location estimation module may performsome or all of the techniques described herein to estimate a targetpickup location.

The ride matching module 133 may then provide estimated travel times forthe providers and the requestor to the provider selection module 135.The provider selection module 135 may obtain the estimated travel timesand may select one or more providers that should be matched with therequest. Accordingly, the provider selection module 135 may generate adynamic provider eligibility model that incorporates both the estimatedrequestor arrival time and the estimated provider times of each of theproviders to identify those available providers that are eligible for amatch. The provider selection module 135 may then select a subset of theeligible available providers and select one of the providers based onsystem efficiency, rankings, route, arrival time, and/or any othersuitable information that can be used for matching. For example, twoavailable providers may be identified as eligible for a request whereone of the providers is traveling away from the request location whilethe other is traveling toward the request location. The providerselection module 135 may select the provider that is traveling towardthe request location because it causes less driving, fewer turns, saferdriving, and all the other benefits of allowing providers to maintaintheir current direction of travel.

Additionally, in some embodiments, the provider selection module 135 mayperform available provider prediction to ensure that the best possiblematch is being made. For instance, the provider selection module 135 mayobtain an available provider rate associated with the request locationfrom a historical ride data store 136C that may indicate the historicalrate of available providers coming online near the request location. Forexample, some areas may have a high rate of providers coming onlineduring particular times that the dynamic transportation matching systemmay use to predict available providers near the request location. Forrequests that have relatively large requestor arrival times outstanding(e.g., 5+ minutes) and a high rate of predicted available providers, thesystem may delay matching to an eligible provider even if there aremultiple providers that are available and eligible for a request inorder to ensure that the a more efficient system match does not arise.Additionally, the ride history data store 136C may be consulted forexisting rides that have providers that will be dropping off requestorsin the area before the requestor arrival time is up. For instance, if arequest is received for a busy area where a number of differentproviders with requestors are dropping off previously matched requestorsand/or where new providers are known to become active during the timeframe of the requestor arrival time, the provider selection module 135may delay matching to see if a provider becomes available in the areathat is closer than the existing eligible providers for the request. Theride matching module may repeat the process and monitor the status ofthe available and matched providers in the area along with the progressof the requestor toward the request location to ensure that awell-matched and eligible provider is matched to the request before therequestor arrives at the request location. Accordingly, by tracking andmonitoring system activity as well as using estimated arrival times forthe providers and requestor over time, the system can more efficientlyand effectively match provider resources with requestor resources toensure the most efficient matching of resources.

The ride matching module 133 may provide the ride request to theprovider interface 132 with the provider contact information or provideridentifier so that the ride request may be sent to one or more availableproviders. The ride matching module 133 may send the ride request and/orthe information from the ride request to one or more of the selectedavailable providers to determine whether the available providers areinterested in accepting the ride request. The one or more availableproviders may receive the ride request through the provider application151 of the provider computing device 150, may evaluate the request, andmay accept or deny the request by providing an input through theprovider application 151. A ride response message may be sent to thedynamic transportation matching system 130 indicating whether a ride wasaccepted and including a provider identifier, a location of theprovider, and/or any other suitable information to allow the dynamictransportation matching system 130 to process the response.Alternatively, the provider may ignore the request and after apredetermined period of time, the request may be considered denied and acorresponding ride response message may be sent to the dynamictransportation matching system 130. In some embodiments, no response maybe sent unless a ride request is accepted and the ride will be assumedto be denied unless a response is received from the provider. In otherembodiments, no response is necessary and the ride may be immediatelyaccepted. An indicator, flag, and/or other information may be passedback to the dynamic transportation matching system to assure the systemthat the provider computing device received the request.

The ride matching module 133 may receive the ride response, evaluatewhether the provider accepted or declined the request, and may eitherfind additional available providers for the request (if declined) ordetermine the ride request has been accepted and send matched rideinformation to the requestor computing device 120 and the providercomputing device 150. The matched ride information may include providerinformation, requestor information, the pick-up location, the currentlocation of the provider computing device, the current location of therequestor computing device, an estimated time of arrival for theprovider, and/or any other suitable information to allow the requestorand the provider to complete the requested service. The ride matchingmodule 133 may update the historical ride data store 136C with thecorresponding matched ride information for the matched ride.Accordingly, the ride matching module may perform more efficient andeffective matching of requests with providers.

FIG. 8 shows a requestor/provider management environment 800, inaccordance with various embodiments. As shown in FIG. 8, a managementsystem 802 can be configured to provide various services to requestorand provider devices. Management system 802 can run one or more servicesor software applications, including identity management services 804,location services 806, ride services 808, or other services. Althoughthree services are shown as being provided by management system 802,more or fewer services may be provided in various implementations. Invarious embodiments, management system 802 may include one or moregeneral purpose computers, server computers, clustered computingsystems, cloud-based computing systems, or any other computing systemsor arrangements of computing systems. Management system 802 may beconfigured to run any or all of the services and/or softwareapplications described with respect to various embodiments of thepresent techniques described herein. In some embodiments, managementsystem 802 can run any appropriate operating system as well as variousserver applications, such as common gateway interface (CGI) servers,JAVA(r) servers, hypertext transport protocol (HTTP) servers, filetransfer protocol (FTP) servers, database servers, etc.

Identity management services 804 may include various identity services,such as access management and authorization services for requestors andproviders when interacting with management system 802. This may include,e.g., authenticating the identity of providers and determining that theproviders are authorized to provide services through management system802. Similarly, requestors' identities may be authenticated to determinewhether the requestor is authorized to receive the requested servicesthrough management system 802. Identity management services 804 may alsocontrol access to provider and requestor data maintained by managementsystem 802, such as driving and/or ride histories, personal data, orother user data. Location services 806 may include navigation and/ortraffic management services and user interfaces, or other locationservices.

In various embodiments, ride services 808 may include ride matching andmanagement services to connect a requestor to a provider. Ride services808 may include a user interface and or may receive data from requestorsand providers through applications executing on their respectivedevices. Ride services 808 may, e.g., confirm the identity of requestorsand providers using identity management services 804, and determine thateach user is authorized for the requested ride service. In someembodiments, ride services 808 can identify an appropriate providerusing a location obtained from a requestor and location services 806 toidentify, e.g., a closest provider. As such, ride services 808 canmanage the distribution and allocation of provider and requestorresources, consistent with embodiments described herein.

Management system 802 can connect to various devices through network 810and 812. Networks 810, 812 can include any network configured to sendand/or receive data communications using various communicationprotocols, such as AppleTalk, transmission control protocol/Internetprotocol (TCP/IP), Internet packet exchange (IPX), systems networkarchitecture (SNA), etc. In some embodiments, networks 810, 812 caninclude local area networks (LAN), such as Ethernet, Token-Ring or otherLANs. Networks 810, 812 can include a wide-area network and/or theInternet. In some embodiments, networks 810, 812 can include VPNs(virtual private networks), PSTNs (a public switched telephonenetworks), infra-red networks, or any wireless network, includingnetworks implementing the IEEE 802.11 family of standards, Bluetooth®,Bluetooth® Low Energy, NFC and/or any other wireless protocol. Invarious embodiments, networks 810, 812 can include a mobile network,such as a mobile telephone network, cellular network, satellite network,or other mobile network. Networks 810, 812 may be the same ascommunication network 170 in FIG. 1. In some embodiments, networks 810,812 may each include a combination of networks described herein or othernetworks as are known to one of ordinary skill in the art.

Users may then utilize one or more services provided by managementsystem 802 using applications executing on provider and requestordevices. As shown in FIG. 8, provider computing devices 814, 816, 818,and/or 820 may include mobile devices (e.g., an iPhone®, an iPad®,mobile telephone, tablet computer, a personal digital assistant (PDA)),wearable devices (e.g., head mounted displays, etc.), thin clientdevices, gaming consoles, or other devices configured to communicateover one or more networks 810, 812. Each provider or requestor devicecan execute various operating systems (e.g., Android, iOS, etc.) andconfigured to communicate over the Internet, Blackberry® messenger,short message service (SMS), email, and various other messagingapplications and/or communication protocols. The requestor and providercomputing devices can include general purpose computers (e.g., personalcomputers, laptop computers, or other computing devices executingoperating systems such as macOS®, Windows®, Linux®, various UNIX® orUNIX- or Linux-based operating systems, or other operating systems). Insome embodiments, provider computing device 814 can include avehicle-integrated computing device, such as a vehicle navigationsystem, or other computing device integrated with the vehicle itself.

In some embodiments, provider computing device 818 can include aprovider communication device configured to communicate with users, suchas drivers, passengers, pedestrians, and other users. In someembodiments, provider communication device 818 can communicate directlywith management system 802 or through another provider computing device,such as provider computing device 816. In some embodiments, a requestorcomputing device can communicate 826 directly with providercommunication device 818 over a peer-to-peer connection, Bluetoothconnection, NFC connection, ad hoc wireless network, or any othercommunication channel or connection. Although particular devices areshown as communicating with management system 802 over networks 810 and812, in various embodiments, management system 802 can expose aninterface, such as an application programming interface (API) or serviceprovider interface (SPI) to enable various third parties which may serveas an intermediary between end users and management system 802.

Although requestor/provider management environment 800 is shown withfour provider devices and two requestor devices, any number of devicesmay be supported. The various components shown and described herein maybe implemented in hardware, firmware, software, or combinations thereof.Although one embodiment of a requestor/provider management environmentis depicted in FIG. 8, this is merely one implementation and not meantto be limiting.

FIG. 9 shows a data collection and application management environment900, in accordance with various embodiments. As shown in FIG. 9,management system 902 may be configured to collect data from variousdata collection devices 904 through a data collection interface 906. Asdiscussed above, management system 902 may include one or more computersand/or servers or any combination thereof. Data collection devices 904may include, but are not limited to, user devices (including providerand requestor computing devices, such as those discussed above),provider communication devices, laptop or desktop computers, vehicledata (e.g., from sensors integrated into or otherwise connected tovehicles), ground-based or satellite-based sources (e.g., location data,traffic data, weather data, etc.), or other sensor data (e.g., roadwayembedded sensors, traffic sensors, etc.). Data collection interface 906can include, e.g., an extensible device framework configured to supportinterfaces for each data collection device. In various embodiments, datacollection interface 906 can be extended to support new data collectiondevices as they are released and/or to update existing interfaces tosupport changes to existing data collection devices. In variousembodiments, data collection devices may communicate with datacollection interface 906 over one or more networks. The networks mayinclude any network or communication protocol as would be recognized byone of ordinary skill in the art, including those networks discussedabove.

As shown in FIG. 9, data received from data collection devices 904 canbe stored in data store 908. Data store 908 can include one or more datastores, such as databases, object storage systems and services,cloud-based storage services, and other data stores. For example,various data stores may be implemented on a non-transitory storagemedium accessible to management system 902, such as historical datastore 910, ride data store 912, and user data store 914. Data stores 908can be local to management system 902, or remote and accessible over anetwork, such as those networks discussed above or a storage-areanetwork or other networked storage system. In various embodiments,historical data 910 may include historical traffic data, weather data,request data, road condition data, or any other data for a given regionor regions received from various data collection devices. Ride data 912may include route data, request data, timing data, and other riderelated data, in aggregate and/or by requestor or provider. User data914 may include user account data, preferences, location history, andother user-specific data. Although particular data stores are shown, anydata collected and/or stored according to the various embodimentsdescribed herein may be stored in data stores 908.

As shown in FIG. 9, an application interface 916 can be provided bymanagement system 902 to enable various apps 918 to access data and/orservices available through management system 902. Apps 918 can run onvarious user devices (including provider and requestor computingdevices, such as those discussed above) and/or may include cloud-basedor other distributed apps configured to run across various devices(e.g., computers, servers, or combinations thereof). Apps 918 mayinclude, e.g., aggregation and/or reporting apps which may utilize data908 to provide various services (e.g., third-party ride request andmanagement apps). In various embodiments, application interface 916 caninclude an API and/or SPI enabling third party development of apps 918.In some embodiments, application interface 916 may include a webinterface, enabling web-based access to data 908 and/or servicesprovided by management system 902. In various embodiments, apps 918 mayrun on devices configured to communicate with application interface 916over one or more networks. The networks may include any network orcommunication protocol as would be recognized by one of ordinary skillin the art, including those networks discussed above, in accordance withan embodiment of the present disclosure.

Although a particular implementation of environment 900 is shown in FIG.9, this is for illustration purposes only and not intended to belimited. In some embodiments, environment 900 may include fewer or morecomponents, as would be recognized by one or ordinary skill in the art.

FIGS. 10A-10C show an example provider communication device 1000 inaccordance with various embodiments. As shown in FIG. 10A, a front view1002 of provider communication device 1000 shows a front display 1004.In some embodiments, front display 1004 may include a secondary regionor separate display 1006. As shown in FIG. 10A, the front display mayinclude various display technologies including, but not limited to, oneor more liquid crystal displays (LCDs), one or more arrays of lightemitting diodes (LEDs), or other display technologies. In someembodiments, the front display may include a cover that divides thedisplay into multiple regions. In some embodiments, separate displaysmay be associated with each region. The front display 1004 can beconfigured to show colors, patterns, color patterns, or otheridentifying information to requestors and other users external to aprovider vehicle. In some embodiments, the secondary region or separatedisplay 1006 may be configured to display the same, or contrasting,information as front display 1004.

As shown in FIG. 10B, a rear view 1008 of provider communication device1000 shows a rear display 1010. Rear display 1010, as with front display1004, rear display 1010 may include various display technologiesincluding, but not limited to, one or more liquid crystal displays(LCDs), one or more arrays of light emitting diodes (LEDs), or otherdisplay technologies. The rear display may be configured to displayinformation to the provider, the requestor, or other users internal to aprovider vehicle. In some embodiments, rear display 1010 may beconfigured to provide information to users external to the providervehicle who are located behind the provider vehicle. As further shown inFIG. 10B, provider communication device may include a power button 1012or other switch which can be used to turn on or off the providercommunication device. In various embodiments, power button 1012 may be ahardware button or switch that physically controls whether power isprovided to provider communication device 1000. Alternatively, powerbutton 1012 may be a soft button that initiates a startup/shutdownprocedure managed by software and/or firmware instructions. In someembodiments, provider communication device 1000 may not include a powerbutton 1012. Additionally, provider communication device may include oneor more light features 1014 (such as one or more LEDs or other lightsources) configured to illuminate areas adjacent to the providercommunication device 1000. In some embodiments, provider communicationdevice 1000 can include a connector to enable a provider computingdevice to be connected to the provider communication device 1000. Insome embodiments, power may be provided to the provider communicationdevice through connector 1016.

FIG. 10C shows a block diagram of provider computing device 1000. Asshown in FIG. 10C, provider communication device can include a processor1018. Processor 1018 can control information displayed on rear display1010 and front display 1004. As noted, each display can displayinformation to different users, depending on the positioning of theusers and the provider communication device. In some embodiments,display data 1020 can include stored display patterns, sequences,colors, text, or other data to be displayed on the front and/or reardisplay. In some embodiments, display data 1020 can be a buffer, storingdisplay data as it is received from a connected provider computingdevice. In some embodiments, display data 1020 can include a hard diskdrive, solid state drive, memory, or other storage device includinginformation from a management system. In some embodiments, lightingcontroller 1022 can manage the colors and/or other lighting displayed bylight features 1014. In some embodiments, communication component 1024can manage networking or other communication between the providercommunication device 1000 and one or more networking components or othercomputing devices. In various embodiments, communication component 1024can be configured to communicate over Wi-Fi, Bluetooth, NFC, RF, or anyother wired or wireless communication network or protocol. In someembodiments, provider communication device 1000 can include aninput/output system 1026 configured to provide output in addition tothat provided through the displays and/or to receive inputs from users.For example, I/O system 1026 can include an image capture deviceconfigured to recognize motion or gesture-based inputs from a user.Additionally, or alternatively, I/O system 1026 can include an audiodevice configured to provide audio outputs (such as alerts,instructions, or other information) to users and/or receive audioinputs, such as audio commands, which may be interpreted by a voicerecognition system or other command interface. In some embodiments, I/Osystem may include one or more input or output ports, such as USB(universal serial bus) ports, lightning connector ports, or other portsenabling users to directly connect their devices to the providercommunication device (e.g., to exchange data, verify identityinformation, provide power, etc.).

FIG. 11 shows an example computer system 1100, in accordance withvarious embodiments. In various embodiments, computer system 1100 may beused to implement any of the systems, devices, or methods describedherein. In some embodiments, computer system 1100 may correspond to anyof the various devices described herein, including, but not limited, tomobile devices, tablet computing devices, wearable devices, personal orlaptop computers, vehicle-based computing devices, or other devices orsystems described herein. As shown in FIG. 11, computer system 1100 caninclude various subsystems connected by a bus 1102. The subsystems mayinclude an I/O device subsystem 1104, a display device subsystem 1106,and a storage subsystem 1110 including one or more computer readablestorage media 1108. The subsystems may also include a memory subsystem1112, a communication subsystem 1120, and a processing subsystem 1122.

In system 1100, bus 1102 facilitates communication between the varioussubsystems. Although a single bus 1102 is shown, alternative busconfigurations may also be used. Bus 1102 may include any bus or othercomponent to facilitate such communication as is known to one ofordinary skill in the art. Examples of such bus systems may include alocal bus, parallel bus, serial bus, bus network, and/or multiple bussystems coordinated by a bus controller. Bus 1102 may include one ormore buses implementing various standards such as Parallel ATA, serialATA, Industry Standard Architecture (ISA) bus, Extended ISA (EISA) bus,MicroChannel Architecture (MCA) bus, Peripheral Component Interconnect(PCI) bus, or any other architecture or standard as is known in the art.

In some embodiments, I/O device subsystem 1104 may include various inputand/or output devices or interfaces for communicating with such devices.Such devices may include, without limitation, a touch screen or othertouch-sensitive input device, a keyboard, a mouse, a trackball, a motionsensor or other movement-based gesture recognition device, a scrollwheel, a click wheel, a dial, a button, a switch, audio recognitiondevices configured to receive voice commands, microphones, image capturebased devices such as eye activity monitors configured to recognizecommands based on eye movement or blinking, and other types of inputdevices. I/O device subsystem 1104 may also include identification orauthentication devices, such as fingerprint scanners, voiceprintscanners, iris scanners, or other biometric sensors or detectors. Invarious embodiments, I/O device subsystem may include audio outputdevices, such as speakers, media players, or other output devices.

Computer system 1100 may include a display device subsystem 1106.Display device subsystem may include one or more lights, such as an oneor more light emitting diodes (LEDs), LED arrays, a liquid crystaldisplay (LCD) or plasma display or other flat-screen display, a touchscreen, a head-mounted display or other wearable display device, aprojection device, a cathode ray tube (CRT), and any other displaytechnology configured to visually convey information. In variousembodiments, display device subsystem 1106 may include a controllerand/or interface for controlling and/or communicating with an externaldisplay, such as any of the above-mentioned display technologies.

As shown in FIG. 11, system 1100 may include storage subsystem 1110including various computer readable storage media 1108, such as harddisk drives, solid state drives (including RAM-based and/or flash-basedSSDs), or other storage devices. In various embodiments, computerreadable storage media 1108 can be configured to store software,including programs, code, or other instructions, that is executable by aprocessor to provide functionality described herein. In someembodiments, storage system 1110 may include various data stores orrepositories or interface with various data stores or repositories thatstore data used with embodiments described herein. Such data stores mayinclude, databases, object storage systems and services, data lakes orother data warehouse services or systems, distributed data stores,cloud-based storage systems and services, file systems, and any otherdata storage system or service. In some embodiments, storage system 1110can include a media reader, card reader, or other storage interface tocommunicate with one or more external and/or removable storage devices.In various embodiments, computer readable storage media 1108 can includeany appropriate storage medium or combination of storage media. Forexample, computer readable storage media 1108 can include, but is notlimited to, any one or more of random access memory (RAM), read onlymemory (ROM), electronically erasable programmable ROM (EEPROM), flashmemory or other memory technology, optical storage (e.g., CD-ROM,digital versatile disk (DVD), Blu-ray® disk or other optical storagedevice), magnetic storage (e.g., tape drives, cassettes, magnetic diskstorage or other magnetic storage devices). In some embodiments,computer readable storage media can include data signals or any othermedium through which data can be sent and/or received.

Memory subsystem 1112 can include various types of memory, includingRAM, ROM, flash memory, or other memory. Memory 1112 can include SRAM(static RAM) or DRAM (dynamic RAM). In some embodiments, memory 1112 caninclude a BIOS (basic input/output system) or other firmware configuredto manage initialization of various components during, e.g., startup. Asshown in FIG. 11, memory 1112 can include applications 1114 andapplication data 1110. Applications 1114 may include programs, code, orother instructions, that can be executed by a processor. Applications1114 can include various applications such as browser clients, locationmanagement applications, ride management applications, data managementapplications, and any other application. Application data 1116 caninclude any data produced and/or consumed by applications 1114. Memory1112 can additionally include operating system 1118, such as macOS®,Windows®, Linux®, various UNIX® or UNIX- or Linux-based operatingsystems, or other operating systems.

System 1100 can also include a communication subsystem 1120 configuredto facilitate communication between system 1100 and various externalcomputer systems and/or networks (such as the Internet, a local areanetwork (LAN), a wide area network (WAN), a mobile network, or any othernetwork). Communication subsystem 1120 can include hardware and/orsoftware to enable communication over various wired (such as Ethernet orother wired communication technology) or wireless communicationchannels, such as radio transceivers to facilitate communication overwireless networks, mobile or cellular voice and/or data networks, Wi-Finetworks, or other wireless communication networks. For example, thecommunication network is shown as communication network 170 in FIG. 1.Additionally, or alternatively, communication subsystem 1120 can includehardware and/or software components to communicate with satellite-basedor ground-based location services, such as GPS (global positioningsystem). In some embodiments, communication subsystem 1120 may include,or interface with, various hardware or software sensors. The sensors maybe configured to provide continuous or and/or periodic data or datastreams to a computer system through communication subsystem 1120

As shown in FIG. 11, processing system 1122 can include one or moreprocessors or other devices operable to control computing system 1100.Such processors can include single core processors 1124, multi coreprocessors, which can include central processing units (CPUs), graphicalprocessing units (GPUs), application specific integrated circuits(ASICs), digital signal processors (DSPs) or any other generalized orspecialized microprocessor or integrated circuit. Various processorswithin processing system 1122, such as processors 1124 and 1126, may beused independently or in combination depending on application.

Various other configurations are may also be used, with particularelements that are depicted as being implemented in hardware may insteadbe implemented in software, firmware, or a combination thereof. One ofordinary skill in the art will recognize various alternatives to thespecific embodiments described herein.

The specification and figures describe particular embodiments which areprovided for ease of description and illustration and are not intendedto be restrictive. Embodiments may be implemented to be used in variousenvironments without departing from the spirit and scope of thedisclosure.

The use of the terms “a” and “an” and “the” and similar referents in thecontext of describing the disclosed embodiments (especially in thecontext of the following claims) are to be construed to cover both thesingular and the plural, unless otherwise indicated herein or clearlycontradicted by context. The terms “comprising,” “having,” “including,”and “containing” are to be construed as open-ended terms (i.e., meaning“including, but not limited to,”) unless otherwise noted. The term“connected” is to be construed as partly or wholly contained within,attached to, or joined together, even if there is something intervening.Recitation of ranges of values herein are merely intended to serve as ashorthand method of referring individually to each separate valuefalling within the range, unless otherwise indicated herein and eachseparate value is incorporated into the specification as if it wereindividually recited herein. All methods described herein can beperformed in any suitable order unless otherwise indicated herein orotherwise clearly contradicted by context. The use of any and allexamples, or exemplary language (e.g., “such as”) provided herein, isintended merely to better illuminate embodiments of the disclosure anddoes not pose a limitation on the scope of the disclosure unlessotherwise claimed. No language in the specification should be construedas indicating any non-claimed element as essential to the practice ofthe disclosure.

Disjunctive language such as the phrase “at least one of X, Y, or Z,”unless specifically stated otherwise, is intended to be understoodwithin the context as used in general to present that an item, term,etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y,and/or Z). Thus, such disjunctive language is not generally intended to,and should not, imply that certain embodiments require at least one ofX, at least one of Y, or at least one of Z to each be present.

Preferred embodiments of this disclosure are described herein, includingthe best mode known to the inventors for carrying out the disclosure.Variations of those preferred embodiments may become apparent to thoseof ordinary skill in the art upon reading the foregoing description. Theinventors expect skilled artisans to employ such variations asappropriate and the inventors intend for the disclosure to be practicedotherwise than as specifically described herein. Accordingly, thisdisclosure includes all modifications and equivalents of the subjectmatter recited in the claims appended hereto as permitted by applicablelaw. Moreover, any combination of the above-described elements in allpossible variations thereof is encompassed by the disclosure unlessotherwise indicated herein or otherwise clearly contradicted by context.

All references, including publications, patent applications, andpatents, cited herein are hereby incorporated by reference to the sameextent as if each reference were individually and specifically indicatedto be incorporated by reference and were set forth in its entiretyherein.

1. A method comprising: receiving, by a dynamic transportation matchingsystem, transport request information including a request locationassociated with, a requestor computing device; determining priortransport data corresponding to the transport request information, theprior transport data including at least one prior pickup locationassociated with the request location and prior time data associated withthe at least one prior pickup location; weighting each of the at leastone prior pickup location based on the prior time data associated withthe at least one prior pickup location and current time data associatedwith the transport request information; determining a target pickuplocation based on the weighting of the at least one prior pickuplocation; and sending, by the dynamic transportation matching system,transport request information including the target pickup location tothe requestor computing device.
 2. The method of claim 1, furthercomprising weighting each of the at least one prior pickup locationbased on a distance from the at least one prior pickup location to therequest location.
 3. The system of claim 12, wherein: the priortransport data further includes prior weather data associated with theat least one prior pickup location; and the method further comprising:weighting each of the at least one prior pickup location based on theprior weather data associated with the least one prior pickup locationand current weather data associated with the transport requestinformation,
 4. (canceled)
 5. The method of claim 1, wherein: the priortransport data further includes prior traffic data associated with theat least one prior pickup location; and the method further comprising:weighting each of the at least one prior pickup location based ontraffic data associated with the at least one prior pickup location andcurrent traffic data associated with the request location.
 6. The systemof claim 12, wherein: the prior transport data further includes priorconstruction data associated with the fit least one prior pickuplocation associated with the request location; and the method furthercomprising: weighting each of the at least one prior pickup locationbased on prior construction data associated with the at least one priorpickup location and current construction data associated with therequest location.
 7. The method of claim 1, further comprising weightingthe at least one prior pickup location based on safety data associatedwith the at least one prior pickup location.
 8. The method of claim 1,further comprising: identifying, for each of the at least one priorpickup location, a prior target pickup location and a prior requestlocation; determining, for each prior target pickup location, whetherthe prior target pickup location is within a threshold distance of thetarget pickup location; determining, for each of the at least one priortarget pickup location within the threshold distance, whether the priortarget pickup location was moved; and weighting prior target pickuplocations that were moved more heavily than prior pickup locations thatwere not moved.
 9. The method of claim 1, further comprising:identifying, for each of the at least one prior pickup location, a priorWi-Fi network associated with the at least one prior pickup location;determining, for each of the at least one prior pickup location, whetherthe prior Wi-Fi network matches a current Wi-Fi network associated withthe requestor computing device; and weighting each of the at least oneprior pickup location based on whether the prior Wi-Fi network matchesthe current Wi-Fi network associated with the requestor computingdevice.
 10. The method of claim 1, further comprising: identifying, foreach of the at least one prior pickup location, prior authenticationcredentials associated with a prior requestor computing device;determining, for each, prior requestor computing device, whether theprior authentication credentials match current authenticationcredentials associated with the requestor computing device; andweighting each of the at least one prior pickup location based onwhether the prior authentication credentials match the currentauthentication credentials associated with, the requestor computingdevice.
 11. The method of claim 1, further comprising: identifying, foreach of the at least one prior pickup location, a prior stored addressassociated with a prior requestor computing device; determining, foreach prior requestor computing device, whether the prior stored addressmatches a current stored address associated with the requestor computingdevice; and weighting each of the at least one prior pickup locationbased on whether the prior stored address matches the current storedaddress associated with the requestor computing device.
 12. A systemcomprising: at least one processor; and a non-transitory computerreadable medium comprising instructions that when executed by the atleast one processor, cause the system to: receive transport requestinformation including a request location associated with a requestorcomputing device; determine prior transport data corresponding to thetransport request information, the prior transport data including atleast one prior pickup location associated with the request location andprior time data associated with the at least one prior pickup location;weight each of the at least one prior pickup location based on the priortime data associated with the at least one prior pickup location andcurrent time data associated with the transport request information;determine a target pickup location based on the weighting of the atleast one prior pickup location; and send transport request informationincluding the target pickup location to the requestor computing device.13. The system of claim 12, further comprising instructions that, whenexecuted by the at least one processor, cause the system to weigh eachof the at least one prior pickup location based on distance from the atleast one prior pickup location to the request location.
 14. The systemof claim 12, wherein: the prior transport data further includes priorweather data and prior time data associated with the at least one priorpickup location; and further comprising instructions that when executedby the at least one processor, cause the system to: weighting each ofthe at least one prior pickup location based on the prior weather dataand prior time data associated with the least one prior pickup locationand current weather data and current time data associated with thetransport request information.
 15. The system of claim 12, furthercomprising instructions that, when executed by the at least oneprocessor, cause the system to: identify, for each of the at least oneprior pickup location, a prior target pickup location and a priorrequest location; determine, for each prior target pickup location,whether the prior target pickup location is within a threshold distanceof the target pickup location; determine, for each prior target pickuplocation within the threshold distance, whether the prior target pickuplocation was moved; and weight prior target pickup locations that weremoved more heavily than prior pickup locations that were not moved. 16.A non-transitory computer readable medium comprising instructions that,when executed by at least one processor, cause a computer device to:receive transport request information including a request locationassociated with a requestor computing device; determine prior transportdata corresponding to the transport request information, the priortransport data including at least one prior pickup location associatedwith the request location and prior time data associated with the atleast one prior pickup location; weight each of the at least one priorpickup location based on the prior time data associated with the atleast one prior pickup location and current time data associated withthe transport request information; determine a target pickup locationbased on the weighting of the at least one prior pickup location; andsend transport request information including the target pickup locationto the requestor computing device.
 17. The non-transitory computerreadable medium of claim 16, further comprising instructions that, whenexecuted by at least one processor, cause the computer device to:identify, for each of the at least one prior pickup location, a priorWi-Fi network associated with the at least one prior pickup location;determine, for each of the at least one prior pickup location, whetherthe prior Wi-Fi network matches a current Wi-Fi network associated withthe requestor computing device; and weight each of the at least oneprior pickup location based on whether he prior Wi-Fi network matchesthe current Wi-Fi network associated with the requestor computingdevice.
 18. The non-transitory computer readable medium of claim 16,wherein: the prior transport data further includes prior weather dataassociated with the at least one prior pickup location; and further,comprising instructions that, when executed by at least one processor,cause the computer device to: weight each of the at least one priorpickup location based on the prior weather data associated with theleast one prior pickup location and current weather data associated withthe transport request information.
 19. The non-transitory computerreadable medium of claim 18, wherein: the prior transport data furtherincludes prior time data associated with the at least one prior pickuplocation; and further comprising instructions that, when executed by theleast one processor, cause the computer device to: weight each of the atleast one prior pickup location based on the prior time data associatedwith the at least one prior pickup location and current time dataassociated with the transport request information.
 20. Thenon-transitory computer readable medium of claim
 19. wherein: the priortransport data further includes prior traffic data associated with theat least one prior pickup location; and further comprising instructionsthat, when executed by at least one processor, cause the computer deviceto: weight each of the at least one prior pickup location based ontraffic data associated with the at least one prior pickup location andcurrent traffic data associated with the request location.